1. Field of the Invention
The present invention relates to the field of order fulfillment and, more particularly, to system and methodology for efficiently managing order fulfillment.
2. Description of the Background Art
Despite advances afforded by e-commerce, a fundamental problem still exists today in terms of how to efficiently fulfill an order that has been placed by a customer. This problem typically faces those who take customer orders, that is, the “middlemen” (which is used herein to broadly refer to retailers, distributors, or the like). Often, a middleman will have to send a customer order to a “fulfiller,” that is, an organization that will fulfill the order by actually shipping ordered goods back to the customer. The considerations involved in choosing a particular fulfiller are numerous, but typically a middleman chooses a fulfiller with the primary goal of minimizing costs, thus maximizing profits. Different cost-related constraints may come into play, when striving to maximize profit. For example, in addition to the cost incurred as a result of the price charged by a given fulfiller, other cost considerations include what shipping charges are incurred when shipping from a given fulfiller. One fulfiller may have a better price, but that price advantage may be negated by unfavorable shipping charges. Further, cost is not the only factor to consider. Instead, at least some consideration must be given to the ability of a particular fulfiller to timely fulfill an order. There is no point in choosing a fulfiller who offers the best price, if that fulfiller lacks sufficient inventory to successfully fulfill the order in a reasonable period of time.
Often an order cannot be completely fulfilled, or supplied, by a single fulfiller; therefore, the fulfillment of such an order is spread across multiple fulfillers. The determination of the distribution of sub-orders, or product orders within an order, to multiple fulfillers is the scheduling of order shipments for that order. Order shipment scheduling attempts to optimize the fulfiller distribution to minimize the shipping costs to either the customer or to the middleman processing the order. Minimizing the shipping costs almost invariably indicates minimizing the number of fulfillers satisfying an order. Optimized scheduling also minimizes delivery time, and satisfies any arbitrary business logic, such as favoring specified fulfillers (when more than one fulfiller can deliver the same order item in an order). The middleman needs to efficiently optimize the order shipment(s) scheduling according to whatever constraints he or she uses as criteria for assigning order items to fulfillers.
Previous attempts to automate (by computer programming) the optimization of order shipment scheduling have not been satisfactory. Current methods involve considerable time for programming development/updating, and require costly compute time. The prevailing approach uses the simplex method for solving the linear programs comprising multiple simultaneous linear equations; see, e.g., Anderson, David Ray, An Introduction to Management Science: Quantitative Approaches to Decision Making, Seventh Edition, Chapter 5 (particularly at pp. 190-192), West Publishing Company, 1994, the disclosure of which is hereby incorporated by reference. This approach develops a linear programming model comprising a set of linear equations: each linear equation describes a constraint (e.g., proximity of shipper-to-shipping recipient) to be applied to all potential fulfillers.
A linear equation solves for a single variable, and takes the form: ax+b=0, where x is the unknown variable, and both a and b are constant numerical values. In linear equations, the variable, x, always has its exponential value set to 1; exponential or logarithmic variable types are not employed as operands in linear equations. Each linear equation can be graphed as a straight line in a two-dimensional XY-coordinate plane. The coefficient for the variable (the constant numerical value of a, in the generic form) determines the slope of the straight line for that equation. This equation is processed for every fulfiller considered. If the scheduling method implements multiple constraints, then a separate linear equation is processed against each constraint simultaneously. Multiple linear equations can be mapped onto a two-dimensional graph. The set of possible solutions (that minimizes for these constraints) is bound by the area beneath the intersections of the straight line on the graph.
FIG. 1 is an XY two-dimensional coordinate graph showing the slopes for three separate linear equations representing three constraints in a problem for scheduling types of personal computers (e.g., DeskPro™): warehouse capacity, display units, and assembly time. FIG. 1 includes the slope 100 for the equation constraining warehouse capacity, the slope 110 for the equation constraining display units, the slope 120 for the equation constraining assembly time, the area-bounding intersection 130 of the X and Y axes at value (0,0), the area-bounding intersection 140 of the warehouse capacity slope 100 and the X-axis, the area-bounding intersection 150 of the assembly time slope 120 and the warehouse capacity slope 100, the area-bounding intersection 160 of the display units slope 110 and the assembly time slope 120, and the area-bounding intersection 170 of the Y-axis and the display units slope 110. The area bound by the intersections in FIG. 1, 130, 140, 150, 160, and 170, contains the set of feasible solutions for this problem. A discrete solution for any variable (constraint) can be determined by holding all the other variables' values at a constant (within the feasible set).
Current systems using linear programming with multiple simultaneous equations leave much to be desired. A well-known problem with linear solutions is that the simplex method requires intensive iteration. Computerized solutions for multiple simultaneous equations are therefore time-consuming. Another deficiency with linear programming is the programmatic difficulty in setting-up the equations. Because the constraints can be described in linear equations with inequalities, it is challenging to program a general solution that applies to every scenario. Full appreciation of all the factors defining the constraints cannot be completely known a priori. For example, if the program implements a policy towards minimizing shipping costs, the program would need to know all of the distances between the location of the middleman or the customer and the location of every fulfiller: that information would have to be put into a database, and extracted-out and placed into a coefficient for each iteration of each equation. The approach has a degree of fuzziness that stems from the implicit effects of other incidental variables, such as slack time (which is the consequence of having determined the best solution, there is always a remainder left over).
The simplex method of solving linear equations is not the only method; however, the other methods are even more difficult to implement. Because of the ever-increasing demands of the marketplace (and e-commerce marketplace) for timely, cost-effective fulfillment of customer orders, much interest exists in finding a solution to these problems.